package com.yuanheng100.ems4j.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class Ems4jDepartment implements Serializable{
    /**
     * 
     */
    private static final long serialVersionUID = 728717410371919349L;

    /**
     *部门Id。钉钉：id；微信：id
     */
    private Integer id;

    /**
     *父部门id，根部门id为1。钉钉：parentid；微信：parentid
     */
    private Integer parentid;

    /**
     *部门名称。钉钉：name；微信：name
     */
    private String name;

    /**
     *在父部门中的次序值。orderNum值小的排序靠前。钉钉：order；微信：order
     */
    private Short ordernum;

    /**
     *所属应用id，JSON数组存储。见ems4j_application.appId。如果为空，则表示继承自直接上级部门的appIds。如果最顶层也为空，则意味对所有app开放
     */
    private String appids;

    /**
     *启用状态，1启用；2注销
     */
    private Short depstatus;

    /**
     *部门类型
     */
    private Short deptype;
    
    /**
     * 子部门列表。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    private List<Ems4jDepartment> subDepartmentList;
    
    /**
     * 父部门。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    private Ems4jDepartment parentDepartment;

    /**
     * 部门直属员工列表。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    private List<Ems4jEmployee> depEmployeeList;

    /**
     *电话区号。此字段为short型，其存储值前面加0，就是区号。如北京区号数据库中值为10，显示时在前面加0即可。电话为手机时，此字段存0
     */
    private Short phoneareacode;

    /**
     *联系电话
     */
    private Long telephone;

    /**
     *部门所在省市县的6位代码
     */
    private Integer regioncode;

    /**
     *部门创建日期
     */
    private Date createtime;

    /**
     *部门地址
     */
    private String address;

    /**
     *注销日期
     */
    private Date deletedate;

    /**
     *钉钉扩展字段，包括createDeptGroup，autoAddUser等字段，Json格式存储，详见钉钉开放平台文档
     */
    private String dingextend;

    /**
     *微信企业号扩展字段，Json格式存储，详见微信企业号开发者中心文档
     */
    private String wexinextend;

    /**
     *部门Id。钉钉：id；微信：id
     */
    public Integer getId() {
        return id;
    }

    /**
     *部门Id。钉钉：id；微信：id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     *父部门id，根部门id为1。钉钉：parentid；微信：parentid
     */
    public Integer getParentid() {
        return parentid;
    }

    /**
     *父部门id，根部门id为1。钉钉：parentid；微信：parentid
     */
    public void setParentid(Integer parentid) {
        this.parentid = parentid;
    }

    /**
     *部门名称。钉钉：name；微信：name
     */
    public String getName() {
        return name;
    }

    /**
     *部门名称。钉钉：name；微信：name
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     *在父部门中的次序值。orderNum值小的排序靠前。钉钉：order；微信：order
     */
    public Short getOrdernum() {
        return ordernum;
    }

    /**
     *在父部门中的次序值。orderNum值小的排序靠前。钉钉：order；微信：order
     */
    public void setOrdernum(Short ordernum) {
        this.ordernum = ordernum;
    }

    /**
     *所属应用id，JSON数组存储。见ems4j_application.appId。如果为空，则表示继承自直接上级部门的appIds。如果最顶层也为空，则意味对所有app开放
     */
    public String getAppids() {
        return appids;
    }

    /**
     *所属应用id，JSON数组存储。见ems4j_application.appId。如果为空，则表示继承自直接上级部门的appIds。如果最顶层也为空，则意味对所有app开放
     */
    public void setAppids(String appids) {
        this.appids = appids == null ? null : appids.trim();
    }

    /**
     *启用状态，1启用；2注销
     */
    public Short getDepstatus() {
        return depstatus;
    }

    /**
     *启用状态，1启用；2注销
     */
    public void setDepstatus(Short depstatus) {
        this.depstatus = depstatus;
    }

    /**
     *部门类型
     */
    public Short getDeptype() {
        return deptype;
    }

    /**
     *部门类型
     */
    public void setDeptype(Short deptype) {
        this.deptype = deptype;
    }

    /**
     *电话区号。此字段为short型，其存储值前面加0，就是区号。如北京区号数据库中值为10，显示时在前面加0即可。电话为手机时，此字段存0
     */
    public Short getPhoneareacode() {
        return phoneareacode;
    }

    /**
     *电话区号。此字段为short型，其存储值前面加0，就是区号。如北京区号数据库中值为10，显示时在前面加0即可。电话为手机时，此字段存0
     */
    public void setPhoneareacode(Short phoneareacode) {
        this.phoneareacode = phoneareacode;
    }

    /**
     *联系电话
     */
    public Long getTelephone() {
        return telephone;
    }

    /**
     *联系电话
     */
    public void setTelephone(Long telephone) {
        this.telephone = telephone;
    }

    /**
     *部门所在省市县的6位代码
     */
    public Integer getRegioncode() {
        return regioncode;
    }

    /**
     *部门所在省市县的6位代码
     */
    public void setRegioncode(Integer regioncode) {
        this.regioncode = regioncode;
    }

    /**
     *部门创建日期
     */
    public Date getCreatetime() {
        return createtime;
    }

    /**
     *部门创建日期
     */
    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    /**
     *部门地址
     */
    public String getAddress() {
        return address;
    }

    /**
     *部门地址
     */
    public void setAddress(String address) {
        this.address = address == null ? null : address.trim();
    }

    /**
     *注销日期
     */
    public Date getDeletedate() {
        return deletedate;
    }

    /**
     *注销日期
     */
    public void setDeletedate(Date deletedate) {
        this.deletedate = deletedate;
    }

    /**
     *钉钉扩展字段，包括createDeptGroup，autoAddUser等字段，Json格式存储，详见钉钉开放平台文档
     */
    public String getDingextend() {
        return dingextend;
    }

    /**
     *钉钉扩展字段，包括createDeptGroup，autoAddUser等字段，Json格式存储，详见钉钉开放平台文档
     */
    public void setDingextend(String dingextend) {
        this.dingextend = dingextend == null ? null : dingextend.trim();
    }

    /**
     *微信企业号扩展字段，Json格式存储，详见微信企业号开发者中心文档
     */
    public String getWexinextend() {
        return wexinextend;
    }

    /**
     *微信企业号扩展字段，Json格式存储，详见微信企业号开发者中心文档
     */
    public void setWexinextend(String wexinextend) {
        this.wexinextend = wexinextend == null ? null : wexinextend.trim();
    }

    /**
     * @return 子部门列表。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    public List<Ems4jDepartment> getSubDepartmentList()
    {
        return subDepartmentList;
    }

    /**
     * @param 子部门列表。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    public void setSubDepartmentList(List<Ems4jDepartment> subDepartmentList)
    {
        this.subDepartmentList = subDepartmentList;
    }

    /**
     * @return 部门直属员工列表。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    public List<Ems4jEmployee> getDepEmployeeList()
    {
        return depEmployeeList;
    }

    /**
     * @param 部门直属员工列表。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    public void setDepEmployeeList(List<Ems4jEmployee> depEmployeeList)
    {
        this.depEmployeeList = depEmployeeList;
    }

    /**
     * @return 父部门。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    public Ems4jDepartment getParentDepartment()
    {
        return parentDepartment;
    }

    /**
     * @param 父部门。此属性主要为接口能返回结构化数据准备，在数据库中并无对应字段。
     */
    public void setParentDepartment(Ems4jDepartment parentDepartment)
    {
        this.parentDepartment = parentDepartment;
    }
    
}